10 GRAPH:LOCATE 2,4:PRINT "  ɱ  Ǳ  ":LOCATE 4,3:PRINT "ʼϷ"
15 LOCATE 3,5:PRINT "Version 5.00"
20 IF INKEY$ THEN 90 ELSE 20
90 GRAPH:REM :EMIX=5:EMIY=5
95 FOR I=1 TO 3:W(I)=0:PWX=PX:PWY=PY:WX(I)=0:WY(I)=0:NEXT I:LI=5:DAM(1)=4:DAM(2)=3
96 FOR I=1 TO 3:PEWX(I)=1:PEWY(I)=1:NEXT I
100 CLS:WAT=40:PX=8:PY=52:PEX=PX:PEY=PY:SX=0:SY=0:DE=0:IF KI=0 THEN 110 ELSE 170
110 CKI=RND(1):CLS:ENEMY=ENEMY+1:DE=0:MI=0:EMIX=5:EMIY=5
120 IF CKI<0.30 THEN KI=1:EY=INT(RND(1)*20+13):ESX=-2:ESY=0: GOTO 150
130 IF CKI>0.70 AND CKI<=0.95 THEN KI=3:EY=40:ESX=-2:ESY=0: GOTO 150
135 IF CKI>0.95 THEN KI=4:EY=INT(RND(1)*70+5):ESX=1:ESY=1: GOTO 150
140 KI=2:EY=45+INT(RND(I)*30):ESX=-1.5:ESY=0
150 EX=155:EEX=EX:EEY=EY:EW(1)=0:EW(2)=0:EW(3)=0:DE=0:MIX=158
160 FOR I=1 TO 3:EWX(I)=-3:EWY(I)=0:EPWX(I)=EX:EPWY(I)=EY:EPEWX(I)=3:EPEWY(I)=3:NEXT I
165 REM ʾҷǱͧ
170 LINE 1,WAT,160,WAT:BOX 1,0,159,79
175 IF MI=0 AND MIX<6 THEN LINE EMIX-1,EMIY,EMIX+2,EMIY,0:MIX=158
180 BOX PEX-5,PEY-2,PEX+4,PEY+1,1,0
190 BOX PX-3,PY-1,PX+3,PY+1:LINE PX-5,PY,PX+4,PY:LINE PX-5,PY-1,PX-5,PY+1
200 LINE PX,PY-2,PX+1,PY-2:DRAW PX-5,PY,0
210 PEX=PX:PEY=PY
220 IF PX=6 AND SX=-1 THEN SX=0
230 IF PX=155 AND SX=1 THEN SX=0
240 IF PY=40 AND SY=1 THEN SY=0
250 IF PY>78 AND SY=-1 THEN SY=0
260 PX=PX+SX:PY=PY-SY
265 REM ҷ˶
270 FOR I=1 TO 3
280 ON W(I)+1 GOTO 510,290,390
285 REM 
290 LINE PEWX(I)-1,PEWY(I),PEWX(I)+1,PEWY(I),0
300 LINE PWX(I)-1,PWY(I),PWX(I)+1,PWY(I)
310 PEWX(I)=PWX(I):PEWY(I)=PWY(I):RA(I)=RA(I)-1
320 IF PWX(I)>158 OR PWX(I)<2 OR RA(I)=0 THEN W(I)=0:PWX(I)=PX:PWY(I)=PY: GOTO 325 ELSE 340
325 LINE PEWX(I)-1,PEWY(I),PEWX(I)+1,PEWY(I),0: GOTO 510
340 IF PWY(I)-EY>0 THEN WY(I)=1: GOTO 370
350 IF PWY(I)-EY<0 THEN WY(I)=-1: GOTO 370
360 WY(I)=0
370 IF PWY(I)<=41 AND WY(I)=1 THEN WY(I)=0
375 PWX(I)=PWX(I)+WX(I):PWY(I)=PWY(I)-WY(I)
380 GOTO 510
385 REM Կյ
390 LINE PEWX(I),PEWY(I)-1,PEWX(I),PEWY(I)+1,0
400 LINE PWX(I),PWY(I)-1,PWX(I),PWY(I)+1
410 PEWX(I)=PWX(I):PEWY(I)=PWY(I)
420 IF PWX(I)>158 OR PWX(I)<2 OR PWY(I)<3 THEN W(I)=0:PWX(I)=PX:PWY(I)=PY: GOTO 425 ELSE 430
425 LINE PEWX(I),PEWY(I)-1,PEWX(I),PEWY(I)+1,0: GOTO 510
430 IF PWX(I)-EX<0 THEN WX(I)=1: GOTO 450
440 IF PWX(I)-EX>=0 THEN WX(I)=-1
450 PWX(I)=PWX(I)+WX(I):PWY(I)=PWY(I)-WY(I)
460 GOTO 510
510 NEXT I
515 REM ҷ
520 FOR I=1 TO 3
525 IF W(I)=0 THEN 550
530 WK=W(I)
540 IF SQR((PWX(I)-EX)^2+(PWY(I)-EY)^2)<=DAM(WK) THEN M=I: GOTO 570
550 NEXT I
560 GOTO 660
570 CIRCLE EX,EY,5,1,1:CIRCLE PWX(M),PWY(M),5,1,1
580 CIRCLE EX,EY,5,1,0:CIRCLE PWX(M),PWY(M),5,1,0
590 FOR I=1 TO 3
600 BOX EPWX(I)-1,EPWY(I)-1,EPWX(I)+1,EPWY(I)+1,1,0
610 BOX PEWX(I)-1,PEWY(I)-1,PEWX(I)+1,PEWY(I)+1,1,0
620 PWX(I)=PX:PWY(I)=PY:W(I)=0
630 NEXT I
640 MA=MA+100:IF KI=4 THEN LI=LI+1
650 GOTO 110
655 REM з˶
660 ON KI GOTO 670,910,1070,1300
665 REM ɻ
670 BOX EEX-3,EEY-3,EEX+3,EEY+3,1,0
680 LINE EX-3,EY,EX+3,EY:LINE EX-2,EY,EX+1,EY-3:LINE EX-2,EY,EX+1,EY+3
690 LINE EX+3,EY-1,EX+3,EY+1
700 EEX=EX:EEY=EY:ESY=0
710 IF EX<6 THEN  GOTO 720 ELSE 760
720 FOR I=1 TO 3
730 BOX EPWX(I)-1,EPWY(I)-1,EPWX(I)+1,EPWY(I)+1,1,0
740 NEXT I
750 GOTO 110
760 IF EW(1)=1 THEN ESX=-1.5 ELSE ESX=-2
762 IF W(1)=2 AND ABS(PWX(1)-EX)<=ABS(PWY(1)-EY)*2.5 AND PWY(1)>=EY THEN 763 ELSE 769
763 IF LH(1)>=18 AND EY>=5 THEN ESY=-1: GOTO 769
765 IF LH(1)<18 AND EY<=32 THEN ESY=1
769 EX=EX+ESX:EY=EY+ESY
770 H=WAT-EY:D=PY-WAT:DIS=EX-PX
780 IF SX*(D+H)/(2+SY)>DIS OR EX<PX+(PY-EY)/3 THEN 790 ELSE 830
790 FOR I=1 TO 3
800 IF EW(I)=0 THEN 810 ELSE 820
810 EW(I)=1:EPWX(I)=EX:EPWY(I)=EY:EPEWX(I)=EPWX(I):EPEWY(I)=EPWY(I): GOTO 830
820 NEXT I
830 FOR I=1 TO 3
840 IF EW(I)=0 THEN 900 
850 DRAW EPEWX(I),EPEWY(I),0:DRAW EPWX(I),EPWY(I)
860 EPEWX(I)=EPWX(I):EPEWY(I)=EPWY(I)
865 IF EPWX(I)-PX>0 THEN EWX(I)=-1 ELSE EWX(I)=1
866 IF EPWX(I)-PX>-3 AND EPWX(I)-PX<3 THEN EWX(I)=0
870 IF EPWY(I)>79 THEN EW(I)=0:DRAW EPEWX(I),EPEWY(I),0: GOTO 900
880 IF SQR((EPWX(I)-PX)^2+(EPWY(I)-PY)^2)<=6 THEN H=I: GOTO 1380
890 EPWY(I)=EPWY(I)+2+INT((EPWY(I)-EY)/9):EPWX(I)=EPWX(I)+EWX(I)*INT(1+(EPWY(I)-EY)/20)
900 NEXT I
902 GOTO 1470
905 REM Ǳͧ
910 BOX EEX-4,EEY-2,EEX+5,EEY+1,1,0
920 BOX EX-3,EY-1,EX+3,EY+1,1,1:LINE EX-4,EY,EX+5,EY:LINE EX+5,EY-1,EX+5,EY+1:
925 LINE EX-1,EY-2,EX,EY-2:IF DE>0 THEN DE=DE-1
930 EEX=EX:EEY=EY:DIS=PX-EX:ESY=0:ESX=1
933 IF PY>=EY-DIS/5 AND EY<79 THEN ESY=1
934 IF PY<=EY+DIS/5 AND EY>40 THEN ESY=-1
935 IF EX<6 THEN 720
936 IF W(1)<>0 AND PWY(1)>EY AND EY>40 AND ABS(DIS)<80 AND PWX(1)<EX THEN ESY=-1:ESX=0
937 IF W(1)<>0 AND PWY(1)<=EY AND EY<79 AND ABS(DIS)<80 AND PWX(1)<EX THEN ESY=1:ESX=0
940 IF DIS>-72 AND PY<EY-DIS/4 AND PY>EY+DIS/4 AND DE=0 THEN 950 ELSE  GOTO 1000
950 FOR I=1 TO 3
960 IF EW(I)=0 THEN 970 ELSE 980
970 EW(I)=1:DE=12:EPWX(I)=EX-4:EPWY(I)=EY:ERA(I)=30: GOTO 1000
980 NEXT I
1000 FOR I=1 TO 3
1010 IF EW(I)=0 THEN 1050 
1020 LINE EPEWX(I)-1,EPEWY(I),EPEWX(I)+1,EPEWY(I),0:LINE EPWX(I)-1,EPWY(I),EPWX(I)+1,EPWY(I)
1025 EPEWX(I)=EPWX(I):EPEWY(I)=EPWY(I):ERA(I)=ERA(I)-1
1026 IF EPWY(I)>80 OR ERA(I)=0 OR EPWX(I)<4 THEN EW(I)=0: GOTO 1027 ELSE 1028
1027 LINE EPWX(I)-1,EPWY(I),EPWX(I)+1,EPWY(I),0: GOTO 1050
1028 IF EPWY(I)>PY THEN EWY(I)=1 ELSE EWY(I)=-1
1030 IF SQR((EPWX(I)-PX)^2+(EPWY(I)-PY)^2)<=5 THEN H=I: GOTO 1380
1040 EPWY(I)=EPWY(I)-EWY(I):EPWX(I)=EPWX(I)-3
1050 NEXT I
1060 EX=EX-ESX:EY=EY+ESY: GOTO 1470
1065 REM 
1070 BOX EEX-4,EEY-4,EEX+5,EEY,1,0
1080 BOX EX-3,EY-2,EX+4,EY,1,1:BOX EX-2,EY-4,EX+3,EY-3:LINE EX-4,EY-2,EX+5,EY-2
1090 EEX=EX:EEY=EY:DIS=PX-EX:IF DE<>0 THEN DE=DE-1
1110 IF DIS>-105 AND DIS<-5 AND DE=0 THEN 1120 ELSE 1145
1120 FOR I=1 TO 3
1130 IF EW(I)=0 THEN EW(I)=1:EPWX(I)=EX-3:EPWY(I)=EY-3:DE=7: GOTO 1145 ELSE 1140
1140 NEXT I
1145 FOR I=1 TO 3
1146 IF EW(I)=0 OR EW(I)=2 THEN  GOTO 1200
1150 LINE EPEWX(I)-1,EPEWY(I),EPEWX(I)+2,EPEWY(I),0:LINE EPWX(I)-1,EPWY(I),EPWX(I)+2,EPWY(I)
1160 EPEWX(I)=EPWX(I):EPEWY(I)=EPWY(I)
1170 IF EPWX(I)>PX-5 AND EPWX(I)<PX+5 THEN EW(I)=2:ERA(I)=14 GOTO 1175 ELSE 1180
1175 LINE EPEWX(I)-1,EPEWY(I),EPEWX(I)+2,EPEWY(I),0: GOTO 1200
1180 IF EPWX(I)<4 THEN EW(I)=0:LINE EPWX(I)-1,EPWY(I),EPWX(I)+2,EPWY(I),0: GOTO 1200
1190 EPWX(I)=EPWX(I)-7
1200 NEXT I
1205 FOR I=1 TO 3
1210 IF EW(I)=1 OR EW(I)=0 THEN 1270
1220 DRAW EPEWX(I),EPEWY(I),0:DRAW EPWX(I),EPWY(I)
1230 EPEWX(I)=EPWX(I):EPEWY(I)=EPWY(I):ERA(I)=ERA(I)-1
1240 IF ERA(I)=0 OR EPWX(I)<2 OR EPWX(I)>158 THEN DRAW EPWX(I),EPWY(I),0:EW(I)=0: GOTO 1270
1250 IF EPWX(I)<PX THEN EWX(I)=1 ELSE EWX(I)=-1
1255 IF SQR((EPWX(I)-PX)^2+(EPWY(I)-PY)^2)<=5 THEN H=I: GOTO 1380
1260 EPWX(I)=EPWX(I)+EWX(I):EPWY(I)=EPWY(I)+3
1270 NEXT I
1280 IF EX<6 THEN 720
1290 EX=EX-1: GOTO 1470
1295 REM 
1300 BOX EEX-3,EEY-3,EEX+3,EEY+3,1,0
1310 CIRCLE EX,EY,3,1,1:LINE EX-1,EY-2,EX-1,EY+2,0:LINE EX-1,EY+2,EX+1,EY+2,0
1320 ESY=INT(RND(1)*5-2):ESX=INT(RND(1)*3):EEX=EX:EEY=EY
1330 IF EY<5 AND ESY<0 THEN ESY=1
1335 IF EY>75 AND ESY>0 THEN ESY=-1
1336 IF EX<6 THEN 720
1340 EX=EX-ESX:EY=EY+ESY: GOTO 1470
1370 REM з
1380 CIRCLE PX,PY,5,1,1:CIRCLE EPWX(H),EPWY(H),5,1,1
1390 CIRCLE PX,PY,5,1,0:CIRCLE EPWX(H),EPWY(H),5,1,0:LI=LI-1:MI=0
1395 IF LI=0 THEN  GOTO 1800 
1400 FOR I=1 TO 3
1430 W(I)=0:EW(I)=0
1440 NEXT I
1450 GOTO 100
1460 REM Ժ
1470 IF MI=0 AND PX>70 THEN 1471 ELSE 1472
1471 MI=1:MIX=158:MIY=PY:VMX=4:VMY=0
1472 IF MI=0 THEN 1488
1473 LINE EMIX-1,EMIY,EMIX+2,EMIY,0:LINE MIX-1,MIY,MIX+2,MIY
1474 EMIX=MIX:EMIY=MIY
1475 IF MIY>PY THEN VMY=-2
1476 IF MIY<PY THEN VMY=2
1477 IF MIX<6 THEN MI=0: GOTO 1488
1478 IF SQR((PX-MIX)^2+(PY-MIY)^2)<=5 THEN 1479 ELSE 1481
1479 H=1
1480 GOTO 1380
1481 MIX=MIX-VMX:MIY=MIY+VMY
1487 REM 
1488 IF PEEK (199)<128 THEN 170 ELSE 1489
1489 K$=INKEY$
1490 IF K$="q" THEN SX=-1:SY=1: GOTO 170
1500 IF K$="w" THEN SX=0:SY=1: GOTO 170
1510 IF K$="e" THEN SX=1:SY=1: GOTO 170
1520 IF K$="d" THEN SX=1:SY=0: GOTO 170
1525 IF K$="c" THEN SX=1:SY=-1: GOTO 170
1530 IF K$="x" THEN SX=0:SY=-1: GOTO 170
1540 IF K$="z" THEN SX=-1:SY=-1: GOTO 170
1550 IF K$="a" THEN SX=-1:SY=0: GOTO 170
1560 IF K$="s" THEN SX=0:SY=0: GOTO 170
1570 IF ASC(K$)=20 AND (KI=1 OR KI=4) AND PY<55 THEN 1580 ELSE 1610
1580 FOR I=1 TO 3:IF W(I)=0 THEN LAUN=I: GOTO 1600 ELSE 1590
1590 NEXT I
1595 GOTO 1610
1600 W(LAUN)=2:WY(LAUN)=2:PWX(LAUN)=PX:PWY(LAUN)=PY-1:FLY=FLY+1:LH(LAUN)=EY: GOTO 170
1610 IF ASC(K$)=22 THEN 1620 ELSE 1650
1620 FOR I=1 TO 3:IF W(I)=0 THEN LAUN=I: GOTO 1640 ELSE 1630
1630 NEXT I
1635 GOTO 1650
1640 W(LAUN)=1:WX(LAUN)=3:PWX(LAUN)=PX+4:PWY(LAUN)=PY:RA(LAUN)=21:FLY=FLY+1: GOTO 170
1650 IF ASC(K$)=14 AND PY<=76 THEN PY=PY+3: GOTO 170
1660 IF ASC(K$)=19 AND PY>=43 THEN PY=PY-3: GOTO 170
1670 IF K$="p" AND FLY<>0 AND ENEMY>=2 THEN 1700 
1680 GOTO 170
1700 CLS:PRINT "ݻʣ","ʣ","","  ֣"
1710 LOCATE 1,11:PRINT INT(MA/(ENEMY-1));"%";:LOCATE 2,11:PRINT INT(MA/FLY);"%"
1720 LOCATE 3,11:PRINT LI:LOCATE 4,11:PRINT MA
1730 K$=INKEY$
1740 IF K$="p" THEN  GOTO 1750 ELSE 1730
1750 CLS: GOTO 170
1800 CLS:LOCATE 3,6:PRINT "Game Over!"
1810 IF ASC(INKEY$)=27 THEN 1820 ELSE 1810
1820 CLS:PRINT "ݻʣ","ʣ","߻","  ֣"
1825 IF FLY=0 THEN FLY=1
1826 IF ENEMY=1 THEN ENEMY=2
1830 LOCATE 1,11:PRINT INT(MA/(ENEMY-1));"%";:LOCATE 2,11:PRINT INT(MA/FLY);"%"
1840 LOCATE 3,11:PRINT MA/100:LOCATE 4,11:PRINT INT(MA*(MA/FLY)*(MA/(ENEMY-1))/2000)
1850 IF ASC(INKEY$)=27 THEN 1860 ELSE 1850
1860 TEXT :LOCATE 3,7:PRINT "?Y/N";
1870 INPUT K$
1880 IF K$="Y" THEN 1890 ELSE POKE 199,155
1890 CLEAR
1900 GOTO 90
